#include <iostream>
using namespace std;
int fnl(int **a, int n, int x, int y) {
    if(x>n-1||x<0||y>n-1||y<0)return 17;
    for(int i=x-1; i>=0; i--) {
        if(a[i][y]==-1)return 0;
        if(a[i][y]==1)break;
    }
    for(int i=x+1; i<n; i++) {
        if(a[i][y]==-1)return 0;
        if(a[i][y]==1)break;
    }
    for(int i=y-1; i>=0; i--) {
        if(a[x][i]==-1)return 0;
        if(a[x][i]==1)break;
    }
    for(int i=y+1; i<n; i++) {
        if(a[x][i]==-1)return 0;
        if(a[x][i]==1)break;
    }
    return 1;
};
bool next(int **a, int n, int &x, int &y) {
    if(x>=0&&x<n) {
        if(y>=0&&y<n-1)y++;
        else if(y==n-1){
            x++;
            y=0;
        }
    }
    if(x>=0&&x<n&&a[x][y]==1)next(a,n,x,y);
    if(x>=0&&x<n)return true;
    else return false;
};
void bianli(int **a, int n, int &x, int &y, int &max, int &count) {
    a[x][y]=-1;
    count++;
    int x1=x;
    int y1=y;
    if(count>max)max=count;
    while(next(a,n,x,y)) {
        if(fnl(a,n,x,y)==1) {
            bianli(a,n,x,y,max,count);
            break;
        };
    }
/*    for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++)
                cout<<a[i][j]<<' ';
            cout<<endl;
        }*/
    count--;
    a[x1][y1]=0;
}
int main() {
    int n;
    while(cin>>n && n>0) {
        int *a[n];
        char c;
        for(int i=0; i<n; i++) {
            a[i]=new int[n];
            for(int j=0; j<n; j++) {
                cin>>c;
                if(c=='.')a[i][j]=0;
                if(c=='X')a[i][j]=1;
            }
        }
/*        for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++)
                cout<<a[i][j]<<' ';
            cout<<endl;
        }*/
        int max=0;
        int count=0;
        for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++) {
//                cout<<"from here.."<<endl;
                if(a[i][j]==0) {
                    a[i][j]=-1;
                    int x=0;
                    int y=0;
                    while((fnl(a,n,x,y)==0||a[x][y]==1) && next(a,n,x,y));
                    if(fnl(a,n,x,y)==1)bianli(a,n,x,y,max,count);
                    a[i][j]=0;
                }
            }
        }
        cout<<max<<endl;
        for(int i=0; i<n; i++)delete [] a[i];
    }
    return 0;
}
